The present disclosure relates generally to memory management of a client-server system for network function virtualization and, more particularly, for dynamic cache efficient event suppression. In emerging fields, such as network function virtualization, shared memory is a popular technique that may provide for low-latency communication.
In computer systems, shared memory may refer to memory that can be accessed simultaneously by different resources, such as computer hardware or software. In computer hardware, shared memory is typically random access memory (RAM) that is accessible from different central processing units (CPUs) in a multi-processor system. In computer software, shared memory generally refers to an area of RAM that is accessible to multiple processes or threads. In software systems, such availability allows a single copy of data to service multiple resources, instead of providing a separate copy of the data for each specific resource.
Virtual memory generally refers to a method of memory management where virtual memory addresses are mapped to physical memory addresses of a computer system. An operating system usually manages virtual address spaces and assignment of physical memory to virtual memory. Memory address translation is usually performed by a memory management unit (MMU) of a CPU. In virtual memory management, data sharing between different processes may typically be implemented by mapping a virtual address of each different process to the same physical memory address so that each process accesses the same copy of data.
A central processing unit (CPU) generally uses a CPU cache to reduce the average time to access data from the main memory by storing copies of the data from frequently used main memory locations. The cache in the CPU is a smaller and faster memory. When the CPU needs to read from or write to a location in main memory, it first checks whether a copy of that data is in the cache. However, when the data requested for processing by a component or application is not found in the cache, a cache miss occurs. A cache miss may refer to a failed attempt to read or write a piece of data in the cache. Each cache miss slows down the overall process by requiring the program or application to fetch the data from other cache levels or the main memory.